// pages/mine/mine.js
const request = require('../../utils/request')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用户信息
    userInfo: {
      avatarUrl: '',
      name: '张三',
      role: 'merchant', // merchant, guard, visitor
      roleText: '',
      showziliao: false,
      phone: '', // 为空表示未绑定
      phoneText: ''
    },
    progressWidth: '50%',
    // 商户信息进度
    merchantInfo: {
      progress: 30 // 0-100
    },
    // 未读消息数量
    unreadCount: 2,
    // 手机号绑定弹窗
    showPhoneModal: false,
    phoneNumber: '',
    verifyCode: '',
    codeText: '获取验证码',
    codeDisabled: false,
    // 原有数据保持不变...
    showUserInfoModal: false,
    editUserName: '',
    tempAvatarUrl: ''
  },

  // 打开用户信息修改弹窗
  openUserInfoModal() {
    this.setData({
      showUserInfoModal: true,
      editUserName: this.data.userInfo.name || ''
    });
  },

  // 关闭用户信息修改弹窗
  closeUserInfoModal() {
    this.setData({
      showUserInfoModal: false,
      tempAvatarUrl: '' // 清空临时头像
    });
  },

  // 选择头像
  chooseAvatar() {
    const that = this;
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        // 获取临时文件路径
        const tempFilePath = res.tempFilePaths[0];
        that.setData({
          tempAvatarUrl: tempFilePath
        });

        // 这里可以根据需要上传到服务器
        // 示例：
        that.uploadAvatar(tempFilePath);
      }
    });
  },

  // 上传头像到服务器（示例方法）
  uploadAvatar(tempFilePath) {
    // 这里可以上传到服务器，获取永久链接
    request.upload('/admin-api/infra/file/upload', tempFilePath).then(res => {
      if (res.code === 0) {
        this.setData({
          "userInfo.avatarUrl": res.data
        });
      }
    });
  },

  // 输入用户名
  onUserNameInput(e) {
    this.setData({
      editUserName: e.detail.value
    });
  },

  // 保存用户信息修改
  saveUserInfo() {
    const {
      editUserName,
      tempAvatarUrl
    } = this.data;

    if (!editUserName.trim()) {
      wx.showToast({
        title: '请输入用户名',
        icon: 'none'
      });
      return;
    }

    // 准备更新的数据
    const updateData = {
      name: editUserName
    };

    // 如果有新头像，添加到更新数据中
    if (tempAvatarUrl) {
      updateData.avatarUrl = tempAvatarUrl;
      // 实际项目中应该使用服务器返回的URL
    }

    // 调用接口保存用户信息
    wx.showLoading({
      title: '保存中...'
    });

    // 实际项目中应该调用真实接口
    request.post('/admin-api/mini/home/updateUserInfo', updateData).then(res => {
      if (res.code === 0) {
        this.
        // 更新成功处理
        this.onLoad();
        
      }
      wx.hideLoading();
    });
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.onLoad();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 页面加载时检查是否绑定手机号
    // this.checkPhoneBinding();
    request.get('/admin-api/mini/home/getRole').then(res => {
      if (res.code === 0) {
        const backendUserInfo = res.data;
        // 保存商户ID到本地存储（如果存在）
        if (backendUserInfo.merchantId) {
          wx.setStorageSync('merchantId', backendUserInfo.merchantId);
        }
        this.setData({
          userInfo: {
            ...this.data.userInfo,
            ...backendUserInfo
          }
        });
        if (Object.keys(this.data.userInfo.phone).length === 0) {
          setTimeout(() => {
            this.setData({
              showPhoneModal: true
            });
          }, 3000);
        }
      }
    });
  },
  // 检查手机号绑定状态
  checkPhoneBinding() {
    const phone = this.data.userInfo.phone;
    console.log(Object.keys(this.data.userInfo.phone).length)
    if (Object.keys(this.data.userInfo.phone).length === 0) {
      // 3秒后自动显示绑定弹窗
      setTimeout(() => {
        this.setData({
          showPhoneModal: true
        });
      }, 3000);
    }
  },

  // 获取角色文本
  getRoleText(role) {
    const roleMap = {
      merchant: '商户',
      guard: '门卫',
      visitor: '游客'
    };
    return roleMap[role] || '未知身份';
  },

  // 处理手机号绑定点击
  handlePhoneBind() {
    const {
      phone
    } = this.data.userInfo;
    if (!phone) {
      this.setData({
        showPhoneModal: true
      });
    }
  },
  // 关闭手机号弹窗
  closePhoneModal() {
    this.setData({
      showPhoneModal: false,
      phoneNumber: "" // 可选：清空输入框内容
    });
  },
  // 修改号码
  changePhone() {
    this.setData({
      showPhoneModal: true
    });
  },
  // 隐藏手机号弹窗
  hidePhoneModal() {
    this.setData({
      showPhoneModal: false
    });
  },

  // 输入手机号
  onPhoneInput(e) {
    this.setData({
      phoneNumber: e.detail.value
    });
  },

  // 获取验证码


  /**
   * 提交手机号
   */
  submitPhone() {
    const {
      phoneNumber,
      pendingUrl
    } = this.data;

    // 简单手机号验证
    if (!/^1[3-9]\d{9}$/.test(phoneNumber)) {
      wx.showToast({
        title: '请输入有效的手机号',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    // 提交到后端保存（这里仅做示例，实际需调用真实接口）
    wx.showLoading({
      title: '提交中...'
    });

    request.post("/admin-api/mini/home/bindPhone", this.data.phoneNumber).then(res => {
      if (res.code === 0) {
        this.closeUserInfoModal();
        this.onLoad();
      }
      wx.hideLoading();
    });
    // 模拟接口请求
    setTimeout(() => {
      wx.hideLoading();

      // 保存到缓存
      const userInfo = wx.getStorageSync('userInfo') || {};
      userInfo.phone = phoneNumber;
      wx.setStorageSync('userInfo', userInfo);

      // 隐藏弹窗并跳转
      this.setData({
        showPhoneModal: false,
        phoneNumber: ""
      });
      wx.navigateTo({
        url: pendingUrl
      });
    }, 1000);
  },


  // 确认绑定手机号
  confirmPhoneBind() {
    const {
      phoneNumber,
      verifyCode
    } = this.data;

    if (!phoneNumber || phoneNumber.length !== 11) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      });
      return;
    }

    if (!verifyCode) {
      wx.showToast({
        title: '请输入验证码',
        icon: 'none'
      });
      return;
    }

    // 模拟提交绑定
    wx.showLoading({
      title: '绑定中...'
    });

    setTimeout(() => {
      wx.hideLoading();
      this.setData({
        'userInfo.phone': phoneNumber,
        showPhoneModal: false,
        phoneNumber: '',
        verifyCode: ''
      });
      wx.showToast({
        title: '绑定成功'
      });
    }, 1000);
  },
  // 导航到商户信息页面
  navigateToMerchantInfo() {
    wx.navigateTo({
      url: '/pages/merchant-info/merchant-info?type=self'
    });
  },

  // 导航到代填写商户信息页面
  navigateToAgentMerchantInfo() {
    wx.navigateTo({
      url: '/pages/merchant-info/index?type=agent'
    });
  },

  // 导航到消息页面
  navigateToMessages() {
    wx.navigateTo({
      url: '/pages/messages/index'
    });
  },
  navigateTostaff(){
    wx.navigateTo({
      url: '/pages/staff/index'
    });
  },
  // 导航到设置页面
  navigateToSettings() {
    wx.navigateTo({
      url: '/pages/settings/index'
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },


  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})